home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 9 / Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO / 038a / remfax.zip / _MVRFAX.BAT next >
DOS Batch File  |  1993-02-15  |  9KB  |  399 lines

  1. @echo off
  2.  
  3. rem --- Local call: no dial prefix needed
  4. if %3x==/Lx set MV_DIALOUT=
  5. if %3x==/Lx echo LOCAL CALL
  6.  
  7. rem --- Call back number
  8. set MV_TELNR=
  9. if %2x==x if exist TELPLAY.BAT del TELPLAY.BAT
  10. if %2x==/Lx if exist TELPLAY.BAT call TELPLAY X
  11. if %MV_TELNR%x==x goto MDMINIT
  12. echo CALLBACK NUMBER: %MV_TELNR%
  13.  
  14.  
  15. :MDMINIT
  16. rem --- Init Modem, set silence treshold to VERY insensitive and allow up to
  17. rem     10 seconds of silence
  18. ZUTIL S /P%MV_PORT% /T5 "AT&FX7S41.4=1S7=90+VSD=5,100|" "OK"
  19. rem --- OK?
  20. if errorlevel 2 goto BYE
  21.  
  22.  
  23. :START
  24. rem --- Clean up, set working variables to initial value
  25. set MV_FAXEXST=1200
  26. set MV_FAXRING=%1
  27. if exist *. del *.
  28. if exist *.ZYX del *.ZYX
  29.  
  30. rem --- Check for faxes: the fax receiving directory is compared to the OLD directory
  31. %MV_ZFXDRV%
  32. CD %MV_ZFXDIR%
  33. for %%A in (*.0??) do if not exist OLD\%%A set MV_FAXEXST=400
  34. %MV_DRV%
  35. CD %MV_DIR%
  36. if %MV_FAXEXST%x==400x set MV_FAXRING=1
  37.  
  38. rem --- Power OFF
  39. if %MV_PWROFF%x==x goto START1
  40. call %MV_PWROFF%
  41.  
  42. :START1
  43. rem --- Wait for RING
  44. ZUTIL W /P%MV_PORT% /R%MV_FAXRING% /T32000
  45.  
  46. if errorlevel %MV_FAXRING% goto RING
  47.  
  48. rem --- Time out: start again
  49. goto START
  50.  
  51.  
  52. :RING
  53.  
  54. rem --- Go off-hook, beep (see below for meaning of beep frequency) and wait
  55. rem     up to 20 seconds for a DTMF code (# or *)
  56. rem     low beep  = new faxes
  57. rem     high beep = NO new faxes
  58. ZUTIL R /P%MV_PORT% /F%MV_FAXEXST% /D%MV_BEEPLEN% /S1 /T20 *.ZYX
  59. if exist *.ZYX del *.ZYX
  60.  
  61. rem --- Error >= 252 ?
  62. if errorlevel 252 goto HANGUP
  63.  
  64. rem --- Fax ?
  65. if errorlevel 251 goto MDMCALL
  66.  
  67. rem --- "*/#" ?
  68. if errorlevel 20 goto REMOTE
  69.  
  70. rem --- Other error or cancelled by user (all errorlevels >= 15) ?
  71. if errorlevel 15 goto HANGUP
  72.  
  73. rem --- FAX/DATA call expected
  74. goto MDMCALL
  75.  
  76.  
  77. :HANGUP
  78. rem --- Hang up phone
  79. ZUTIL H /P%MV_PORT% 
  80. goto START
  81.  
  82.  
  83. :MDMCALL
  84. rem --- Turn on Fax/Datamode
  85.  
  86. rem --- Power ON
  87. if %MV_PWRON%x==x goto MDMCALL1
  88. call %MV_PWRON%
  89.  
  90. :MDMCALL1
  91. ZUTIL S "AT#B1+FCLASS=6|" "OK" /P%MV_PORT% /T2
  92.  
  93. rem --- Error
  94. if errorlevel 2 goto HANGUP
  95.  
  96. rem --- Try up to 90 seconds to establish a connection
  97. ZUTIL S "ATA|" "FAX" "2400" "4800" "7200" "9600" "12000" "14400" "16800" "19200" "NO " /P%MV_PORT% /T90
  98.  
  99. rem --- "NO CARRIER" from the modem, timeout or general error...
  100. if errorlevel 10 goto HANGUP
  101.  
  102. rem --- Modem connect ?
  103. if errorlevel 2 goto MAILBOX
  104.  
  105. rem --- No, assume fax connect, start Receive Fax
  106. %MV_ZFXDRV%
  107. CD %MV_ZFXDIR%
  108. RCVFAX 2 /P:%MV_PORT% /R:0
  109. %MV_DRV%
  110. CD %MV_DIR%
  111. goto START
  112.  
  113.  
  114. :MAILBOX
  115. rem --- z.B.
  116. echo TELIX O SHOSTPLUS
  117. goto START
  118.  
  119.  
  120. :REMOTE
  121. rem --- DTMF-code call from remote
  122.  
  123. rem --- Power ON
  124. if %MV_PWRON%x==x goto REMOTE1
  125. call %MV_PWRON%
  126.  
  127. :REMOTE1
  128. rem --- Local call ? (no password necessary)
  129. if %3x==/Lx goto ASKCMD
  130.  
  131. rem --- Is there a password?
  132. if %MV_PWD%x==x goto ASKCMD
  133.  
  134. rem --- Ask for password
  135. call ASKPWD %MV_PWD%
  136. if %MV_PWDOK%x==x goto HANGUP
  137.  
  138.  
  139. :ASKCMD
  140. rem --- Ask for command (0-9)
  141. ZUTIL P ASKCMD.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  142.  
  143. rem --- Start DTMF detection
  144. ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
  145. if exist *.ZYX del *.ZYX
  146.  
  147. rem --- Other Error?
  148. if errorlevel 248 goto HANGUP
  149.  
  150. rem --- "*/#" ?
  151. if errorlevel 20 goto HANGUP
  152.  
  153. rem ---- DTMF ?
  154. if errorlevel 19 goto CMD9
  155. if errorlevel 18 goto CMD8
  156. if errorlevel 17 goto CMD7
  157. if errorlevel 16 goto CMD6
  158. if errorlevel 15 goto CMD5
  159. if errorlevel 14 goto CMD4
  160. if errorlevel 13 goto CMD3
  161. if errorlevel 12 goto CMD2
  162. if errorlevel 11 goto CMD1
  163. if errorlevel 10 goto CMD0
  164. goto HANGUP
  165.  
  166.  
  167. :CMD0
  168. rem --- Check for faxes
  169. if %MV_FAXEXST%x==400x goto CMD0_1
  170. ZUTIL P NOFAX.ZVD /F1200 /D%MV_BEEPLEN% /P%MV_PORT%
  171. goto ASKCMD
  172.  
  173. :CMD0_1
  174. ZUTIL P FAXEXST.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  175. goto ASKCMD
  176.  
  177.  
  178. :CMD1
  179. rem --- Play callback number
  180. if %MV_TELNR%x==x ZUTIL P NOTEL.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  181. if %MV_TELNR%x==x goto ASKCMD
  182. if exist TELPLAY.BAT call TELPLAY Y
  183. goto ASKCMD
  184.  
  185.  
  186. :CMD2
  187. rem --- Ask for callback number
  188. ZUTIL P CLLBCK.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  189.  
  190. rem --- Clean up
  191. set MV_NEWNR=Y
  192.  
  193. :CMD2_1
  194. rem --- Start DTMF detection
  195. ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
  196. if exist *.ZYX del *.ZYX
  197.  
  198. rem --- Other Error?
  199. if errorlevel 248 goto HANGUP
  200.  
  201. rem --- "*/#" ?
  202. if errorlevel 20 goto CMD2_2
  203.  
  204. if %MV_NEWNR%x==x goto DTMF
  205.  
  206. rem --- OK, it's not "*" or "#", so assume it's a new callback number
  207. set MV_TELNR=
  208. set MV_NEWNR=
  209. copy TELPLAY1.TXT TELPLAY.BAT
  210. echo ZUTIL P TELNR.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%>>TELPLAY.BAT
  211.  
  212. :DTMF
  213. rem ---- DTMF ?
  214. if errorlevel 19 goto 9
  215. if errorlevel 18 goto 8
  216. if errorlevel 17 goto 7
  217. if errorlevel 16 goto 6
  218. if errorlevel 15 goto 5
  219. if errorlevel 14 goto 4
  220. if errorlevel 13 goto 3
  221. if errorlevel 12 goto 2
  222. if errorlevel 11 goto 1
  223. if errorlevel 10 goto 0
  224.  
  225. rem --- fall through
  226.  
  227. :CMD2_2
  228. rem --- Is there a callback number?
  229. if %MV_TELNR%x==x goto ASKCMD
  230. if %MV_NEWNR%x==Yx goto ASKCMD
  231.  
  232. rem --- Play callback number back and ask for confirmation
  233. if %MV_NEWNR%x==x copy TELPLAY.BAT+TELPLAY2.TXT TELPLAY.BAT
  234. if %MV_NEWNR%x==x echo ZUTIL P CONFIRM.ZVD /P%MV_PORT%>>TELPLAY.BAT
  235. if %MV_NEWNR%x==x echo :SETNR>>TELPLAY.BAT
  236. if %MV_NEWNR%x==x echo set MV_TELNR=%MV_TELNR%>>TELPLAY.BAT
  237. call TELPLAY
  238.  
  239. ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
  240. if exist *.ZYX del *.ZYX
  241.  
  242. rem --- Other Error?
  243. if errorlevel 248 goto CMD2_3
  244. goto CMD2_4
  245.  
  246. :CMD2_3
  247. set MV_TELNR=
  248. if exist TELPLAY.BAT del TELPLAY.BET
  249. goto HANGUP
  250.  
  251. :CMD2_4
  252. rem --- "*/#" ?
  253. if errorlevel 20 goto CMD2_5
  254.  
  255. rem --- No confirmation: clean up
  256. set MV_TELNR=
  257. if exist TELPLAY.BAT del TELPLAY.BET
  258. goto ASKCMD
  259.  
  260.  
  261. :CMD2_5
  262. rem --- Say "Thank you"
  263. ZUTIL P THANKU.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  264. if exist *.ZYX del *.ZYX
  265. goto ASKCMD
  266.  
  267.  
  268. :CMD3
  269. rem --- Call back
  270.  
  271. rem --- check for callback number
  272. if %MV_TELNR%x==x ZUTIL P NOTEL.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  273. if %MV_TELNR%x==x goto ASKCMD
  274.  
  275. rem --- Check for faxes
  276. if %MV_FAXEXST%x==400x goto CMD3_1
  277. ZUTIL P NOFAX.ZVD /F1200 /D%MV_BEEPLEN% /P%MV_PORT%
  278. goto ASKCMD
  279.  
  280. :CMD3_1
  281. ZUTIL P CONFIRM.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  282. ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
  283. if exist *.ZYX del *.ZYX
  284.  
  285. rem --- Other Error?
  286. if errorlevel 248 goto HANGUP
  287.  
  288. rem --- "*/#" ?
  289. if errorlevel 20 goto CMD3_2
  290. goto ASKCMD
  291.  
  292. :CMD3_2
  293. rem --- Say "Thank you"
  294. ZUTIL P THANKU.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  295. rem --- Hangup
  296. ZUTIL H /P%MV_PORT% 
  297. rem --- Clear any unwanted modem messages (e.g. NO CARRIER) to make ZFAX work
  298. ZUTIL S /P%MV_PORT% /T3 "ATH0|" "OK"
  299. ZUTIL S /P%MV_PORT% /T3 "ATH0|" "OK"
  300. ZUTIL S /P%MV_PORT% /T3 "ATH0|" "OK"
  301.  
  302. rem --- Switch to the ZFAX-directory and send each new fax file to the callback number
  303. %MV_ZFXDRV%
  304. CD %MV_ZFXDIR%
  305. for %%A in (*.0??) do if not exist OLD\%%A call %MV_DRV%%MV_DIR%\FAXIT %%A
  306. %MV_DRV%
  307. CD %MV_DIR%
  308. goto START
  309.  
  310.  
  311. rem --- Store DTMF number in the callback number environment variable (MV_PORT) and
  312. rem --- add a proper line to the playback file.
  313. :9
  314. echo ZUTIL P 9.ZVD /P%MV_PORT%>>TELPLAY.BAT
  315. set MV_TELNR=%MV_TELNR%9
  316. goto CMD2_1
  317. :8
  318. echo ZUTIL P 8.ZVD /P%MV_PORT%>>TELPLAY.BAT
  319. set MV_TELNR=%MV_TELNR%8
  320. goto CMD2_1
  321. :7
  322. echo ZUTIL P 7.ZVD /P%MV_PORT%>>TELPLAY.BAT
  323. set MV_TELNR=%MV_TELNR%7
  324. goto CMD2_1
  325. :6
  326. echo ZUTIL P 6.ZVD /P%MV_PORT%>>TELPLAY.BAT
  327. set MV_TELNR=%MV_TELNR%6
  328. goto CMD2_1
  329. :5
  330. echo ZUTIL P 5.ZVD /P%MV_PORT%>>TELPLAY.BAT
  331. set MV_TELNR=%MV_TELNR%5
  332. goto CMD2_1
  333. :4
  334. echo ZUTIL P 4.ZVD /P%MV_PORT%>>TELPLAY.BAT
  335. set MV_TELNR=%MV_TELNR%4
  336. goto CMD2_1
  337. :3
  338. echo ZUTIL P 3.ZVD /P%MV_PORT%>>TELPLAY.BAT
  339. set MV_TELNR=%MV_TELNR%3
  340. goto CMD2_1
  341. :2
  342. echo ZUTIL P 2.ZVD /P%MV_PORT%>>TELPLAY.BAT
  343. set MV_TELNR=%MV_TELNR%2
  344. goto CMD2_1
  345. :1
  346. echo ZUTIL P 1.ZVD /P%MV_PORT%>>TELPLAY.BAT
  347. set MV_TELNR=%MV_TELNR%1
  348. goto CMD2_1
  349. :0
  350. echo ZUTIL P 0.ZVD /P%MV_PORT%>>TELPLAY.BAT
  351. set MV_TELNR=%MV_TELNR%0
  352. goto CMD2_1
  353.  
  354.  
  355. :CMD4
  356. ZUTIL P CONFIRM.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  357. ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
  358. if exist *.ZYX del *.ZYX
  359.  
  360. rem --- Other Error?
  361. if errorlevel 248 goto HANGUP
  362.  
  363. rem --- "*/#" ?
  364. if errorlevel 20 goto CMD4_1
  365. goto ASKCMD
  366.  
  367. :CMD4_1
  368. %MV_ZFXDRV%
  369. CD %MV_ZFXDIR%
  370. for %%A in (*.0??) do if exist OLD\%%A del %%A
  371. if exist OLD\*.0?? del OLD\*.0??
  372. %MV_DRV%
  373. CD %MV_DIR%
  374. ZUTIL P DELOK.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  375. goto ASKCMD
  376.  
  377.  
  378. :CMD5
  379. rem --- call external program
  380. if not exist EXTERN.BAT goto CMDNA
  381. call EXTERN
  382. goto ASKCMD
  383.  
  384.  
  385. :CMD6
  386. :CMD7
  387. :CMD8
  388. :CMD9
  389. :CMDNA
  390. ZUTIL P CMDNA.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
  391. %MV_DRV%
  392. CD %MV_DIR%
  393. goto ASKCMD
  394.  
  395.  
  396. :BYE
  397. rem --- Leave
  398. 
  399.